#include <iostream>
#include <windows.h>
#include <conio.h>
#include "Const.h"
#include "Game.h"
#include "Snake.h"
#include "Field.h"
#include "Food.h"


int main()
{
	snake_size = 5;// >0 �������� ������ + ������ ������ (���� 1 - �� ������ ������)
	//timeout = 200; //> 100 (ms), 1000 - ����� ����������� ���������� ��������� �� 1 �������

//���������� ������� ��������� ��������� �� 1 �� L; snake_x[0] = 1
//	snake_x[L-1] - ������ ������
//	snake_x[L-snake_size] - ����, ��� ��������� ������ ������

	for (int i = 0; i < L; i++)
	{
		snake_x[i] = i + 1;
	}

	//������� ���������� ���������� ��������� ������ ������ 
	srand(time(0));

	int step = rand() % L + 1;
	//step = 13;
	//snake_x[0] = 13;

	for (int i = 0; i < step - 1; i++)
	{
		int tmp = snake_x[0];
		for (int j = 0; j < L - 1; j++)
		{
			snake_x[j] = snake_x[j + 1];
		}
		snake_x[L - 1] = tmp;
	}

	for (int i = 0; i < columns; i++)//���������� ���� ������� ���������
	{
		field[i] = field_symbol;
	}

	field[0] = field[columns - 1] = '*';//��������� ������

	field[snake_x[0]] = head_symbol;//���������� ������

	// ��������� ������, ���� ����
	for (int i = 1; i < snake_size; i++)
	{
		field[snake_x[L - i]] = tail_symbol;
	}

	stop

		for (int i = 0; i < columns; i++)
		{
			std::cout << border_symbol;
		}
	std::cout << std::endl;


	for (int i = 0; i < columns; i++)
	{
		std::cout << field[i];
	}
	std::cout << std::endl;


	for (int i = 0; i < columns; i++)
	{
		std::cout << border_symbol;
	}
	std::cout << std::endl;

	std::cout << "Press control key" << std::endl;//5)	����� ����������� � ����.

	//char key = _getch();

	//��������� ��� �� ����
	do
	{
		food_x = rand() % (columns - 2) + 1;

	} while (field[food_x] != field_symbol);

	field[food_x] = food_symbol;

	food_flag = true;


	while (true)
	{
		system("cls");//������ ������� �������

		//������� ��������� ������ ������ 
		int tmp = snake_x[0];

		for (int j = 0; j < L - 1; j++)
		{
			snake_x[j] = snake_x[j + 1];
		}

		snake_x[L - 1] = tmp;


		if (field[snake_x[0]] == field_symbol)//������� �����
		{
			//������������� ��������� ������
			field[snake_x[0]] = head_symbol;

			//������ "�����"
			field[snake_x[L - snake_size]] = field_symbol;

			if (snake_size > 1)
			{
				//������ ������ ������ ������
				field[snake_x[L - 1]] = tail_symbol;
			}
		}


		if (field[snake_x[0]] == food_symbol)//������� ���
		{
			//������������� ��������� ������
			field[snake_x[0]] = head_symbol;

			if (snake_size > 1)
			{
				//������ ������ ������ ������
				field[snake_x[L - 1]] = tail_symbol;
			}

			food_flag = false;//��� ���
			snake_size++; //���������� ������� ������
		}

		if (!food_flag && snake_size < L)//���� ��� ��� � ������ �������� ������������� �������
		{
			do
			{
				food_x = rand() % (columns - 2) + 1;

			} while (field[food_x] != field_symbol);

			field[food_x] = food_symbol;//���������� ���
			food_flag = true;//��� ����
		}

		if (!food_flag && snake_size == L)//���� ��� ��� � ������ ������������� �������
		{
			std::cout << "The End" << std::endl;//������� ��������� �� ��������� ����
			break;//����� �� �����
		}

		//������
		for (int i = 0; i < columns; i++)
		{
			std::cout << border_symbol;
		}
		std::cout << std::endl;


		for (int i = 0; i < columns; i++)
		{
			std::cout << field[i];
		}
		std::cout << std::endl;


		for (int i = 0; i < columns; i++)
		{
			std::cout << border_symbol;
		}
		std::cout << std::endl;


		Sleep(timeout);

	}


	return 0;//��� ���������� ����������
}

